gtkbuilder: Install gettext ITS files
authorDaiki Ueno <dueno@src.gnome.org>
Wed, 6 Jan 2016 09:09:04 +0000 (18:09 +0900)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 7 Jan 2016 23:08:30 +0000 (18:08 -0500)
Recent gettext has a feature to allow consumer projects to supply their
own string extraction rules for XML files, in ITS format.

Gettext still ships the rule for *.ui, but it would be better
maintained in the upstream project.

https://bugzilla.gnome.org/show_bug.cgi?id=760202

gtk/Makefile.am
gtk/gtkbuilder.its [new file with mode: 0644]
gtk/gtkbuilder.loc [new file with mode: 0644]

index c851656ffda5c48fb2f6171c3055494b3eb35a2c..48815fed929809fa544ac9c559b10cc31956d756 100644 (file)
@@ -1114,6 +1114,11 @@ pkgdata_DATA = gtkbuilder.rng
 
 EXTRA_DIST += gtkbuilder.rnc gtkbuilder.rng
 
+itsdir = $(datadir)/gettext/its
+its_DATA = gtkbuilder.loc gtkbuilder.its
+
+EXTRA_DIST += $(its_DATA)
+
 templates =                            \
        $(inspector_templates)          \
        ui/gtkapplication-quartz.ui     \
diff --git a/gtk/gtkbuilder.its b/gtk/gtkbuilder.its
new file mode 100644 (file)
index 0000000..689ef0d
--- /dev/null
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<its:rules xmlns:its="http://www.w3.org/2005/11/its"
+           xmlns:gt="https://www.gnu.org/s/gettext/ns/its/extensions/1.0"
+           version="2.0">
+  <its:translateRule selector="/interface" translate="no"/>
+  <its:translateRule selector="/interface//*[@translatable = 'yes']"
+                     translate="yes"/>
+
+  <!-- The 'comment' attribute should be extracted as a translator comment.  -->
+  <its:locNoteRule selector="/interface//*[@comments]"
+                   locNotePointer="@comments"
+                   locNoteType="alert"/>
+  <gt:escapeRule selector="/interface//@comments" escape="no"/>
+
+  <!-- The 'context' attribute should be extracted as msgctxt.  -->
+  <gt:contextRule selector="/interface//*[@context]" contextPointer="@context"/>
+
+  <its:preserveSpaceRule selector="/interface" space="preserve"/>
+
+  <!-- Extracted strings are consumed by the library and are never
+       merged back; we don't want to escape special characters.  -->
+  <gt:escapeRule selector="/interface" escape="no"/>
+</its:rules>
diff --git a/gtk/gtkbuilder.loc b/gtk/gtkbuilder.loc
new file mode 100644 (file)
index 0000000..5d77e48
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<locatingRules>
+  <locatingRule name="GtkBuilder" pattern="*.ui">
+    <documentRule localName="interface" target="gtkbuilder.its"/>
+  </locatingRule>
+</locatingRules>